課程資訊
課程名稱
R語言與文字探勘:公共議題之應用
R Language and Text Mining: An Application of Public Issues 
開課學期
108-1 
授課對象
社會科學院  政治學系  
授課教師
王 貿 
課號
PS5691 
課程識別碼
322 U2090 
班次
 
學分
2.0 
全/半年
半年 
必/選修
選修 
上課時間
星期二6,7(13:20~15:10) 
上課地點
社科研606 
備註
總人數上限:25人
外系人數限制:5人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

文字資料(text as data)是目前最多的一種資料儲存形式,以往受限於分析工具,較常是透過質性分析方式來詮釋、理解文字,但隨著電腦運算能力的大幅提升以及分析模型的演進,將文字資料進行模型運算已不再是遙不可及的想法。就公共議題的分析而言,文字探勘可以協助我們理解:不同傳播媒介對公共議題的報導取向與態度立場有何不同?不同時空環境下對公共議題的討論趨勢與解讀有何不同?公共政策有哪些不同的論述架構?不同利害關係人對政策論述是否有不同的偏好?但前提是,必須精熟一門可以處理文字資料的程式語言,以及理解各種文字分析模型的原理。本課程主要在介紹R語言以及文字探勘技術的操作演練,並與公共議題的分析結合,提供學生分析公共議題的另一種研究工具。

學習程式設計已不再是理科生的專利,隨著程式語言愈趨接近人用語言、應用面向逐漸擴及人文社會科學、線上學習資源的易得性等因素,都使得學習門檻越來越低。但作為一名人文社會科學的學生而言,如何挑選適合的程式語言及學習資源,反而會是邁開學習之路的第一個挑戰。R語言是由統計學家所創造,對沒有程式設計背景的學生而言,其動態語言與物件導向的性質,會讓編寫程式更容易上手。另外,R語言本身具有開放的技術支持社群、詳細的套件使用說明等優勢,都使得R語言相當適合作為人文社會科學學生的第一門程式語言課。

本課程講授R語言基礎,主要的內容包含R語言基本簡介、資料篩選與整理、資料探索與分析、程式設計基礎外,會從文字資料前處理(preprocessing)開始,也就是當拿到一份文字資料時,在分析前所必須要做的資料清理程序。此外,還包括基礎的斷詞、資料視覺化與爬蟲技術的介紹。奠定好這些基礎後,將正式進入文字探勘的世界,介紹各種常用的文字分析技術與模型,並讓同學能夠實際操作演練。當然,此次課程並無法全面地介紹R語言及其在文字探勘的各種應用,但希望透過對於R語言與文字探勘的基本認識,修課同學能夠將R語言作為後續執行各種研究分析的工具,或是進一步涉獵進階統計分析、機器學習、社會網絡分析、空間分析等領域。 

課程目標
1. 熟悉R語言基礎及運用其進行文字資料前處理。
2. 型塑研究問題,並挑選適切的文字資料與分析方法回答該問題。
3. 透過視覺化的方式呈現,有效地與人溝通研究成果。 
課程要求
1. 請自備筆電,並依照課程指示安裝R、RStudio及相關套件。
2. 作業請以R Markdown及html檔繳交。
3. 作業可與同學討論,但請各自撰寫,不得抄襲作業。
4. Office hour 為週二下午(15: 10-16: 00),並將使用Piazza(https://piazza.com/)線上討論平臺。

本課程對學生課後學習之要求:
1. 將使用DataCamp for the Classroom (https://www.datacamp.com/home) 的功能,提供修課同學搭配本課程進度,完成相關之線上課程。
2. 每週上課之程式碼皆會提供修課學生,至下周上課前,請至少複習過程式碼一次。若有不清楚之處,可至線上討論。 
預期每週課後學習時數
 
Office Hours
每週二 15:10~16:00 
指定閱讀
前9週的課程以程式設計為主,第11至第15週才會涉及文字分析模型,故閱讀文獻會以此部分為主。若有補充資料,授課教師將另行通知。

Week 1: 課程概覽
Thieme, N. (2018). R generation. Significance, 15(4), 14-19.
Week 2: R語言基礎:簡介
UC Berkeley D-Lab R-Fundamental GitHub repository
Week 3: R語言基礎:資料篩選與整理
UC Berkeley D-Lab R-Fundamental GitHub repository
UC Berkeley D-Lab R-wrang GitHub repository
Week 4: R語言基礎:資料探索與分析
UC Berkeley D-Lab R-Fundamental GitHub repository
Week 5: R語言基礎:程式設計基礎
UC Berkeley D-Lab R-Fundamental GitHub repository
Week 6: 文字資料前處理(regex, tm, stringr)
Regular Expressions as used in R
Introduction to the tm Package
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter 14).
Week 7: 文字資料前處理:斷詞(tidytext, jiebaR)
Silge, J. & Robinson, D. (2018). Text mining with r: A tidy approach (chapter 1)
jiebaR中文分詞說明文件
Week 8: 資料視覺化(ggplot2)
UC Berkeley D-Lab R-graphics GitHub repository
Week 9: 爬蟲(web scraping)
rvest GitHub repository
Week 10: 期末報告主題說明
Wilkerson, J., & Casas, A. (2017). Large-Scale Computerized Text Analysis in Political Science: Opportunities and Challenges. Annual Review of Political Science, 20(1), 529-544. doi:10.1146/annurev-polisci-052615-025542
Week 11: 詞袋(bag of words)模型
Herzog, A., & Benoit, K. (2015). The Most Unkindest Cuts: Speaker Selection and Expressed Government Dissent during Economic Crisis. The Journal of Politics, 77(4), 1157-1175. doi:10.1086/682670
Week 12: 情緒分析(sentiment analysis)
Laver, M., Benoit, K., & Garry, J. (2003). Extracting Policy Positions from Political Texts Using Words as Data. American Political Science Review, 97(02). doi:10.1017/s0003055403000698
Week 13: 主題模型(topic models)
Roberts, M. E., Stewart, B. M., Tingley, D., Lucas, C., Leder-Luis, J., Gadarian, S. K., . . . Rand, D. G. (2014). Structural Topic Models for Open-Ended Survey Responses. American Journal of Political Science, 58(4), 1064-1082. doi:10.1111/ajps.12103
Mueller, H., & Rauh, C. (2017). Reading Between the Lines: Prediction of Political Violence Using Newspaper Text. American Political Science Review, 1-18. doi:10.1017/s0003055417000570
Week 14: 自然語言處理(Natural Language Processing, NLP)
Bail, C. A. (2016). Combining natural language processing and network analysis to examine how advocacy organizations stimulate conversation on social media. Proc Natl Acad Sci U S A, 113(42), 11823-11828. doi:10.1073/pnas.1607151113
Week 15: 詞嵌入(word embedding)模型
Rudkowsky, E., Haselmayer, M., Wastian, M., Jenny, M., Emrich, Š., & Sedlmair, M. (2018). More than Bags of Words: Sentiment Analysis with Word Embeddings. Communication Methods and Measures, 12(2-3), 140-157. doi:10.1080/19312458.2018.1455817
Week 16: 資料溝通
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter 27-29).
Week 17: 期末報告準備週(暫定)
Week 18: 期末口頭報告 
參考書目
Week 1: 課程概覽
Welbers, K., Van Atteveldt, W., & Benoit, K. (2017). Text Analysis in R. Communication Methods and Measures, 11(4), 245-265. doi:10.1080/19312458.2017.1387238
Week 2: R語言基礎:簡介
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter1, 3, 6).
Week 3: R語言基礎:資料篩選與整理
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter5, 9-16).
Week 4: R語言基礎:資料探索與分析
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter7, 23).
Week 5: R語言基礎:程式設計基礎
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter17-21).
Week 6: 文字資料前處理(regex, tm, stringr)
Denny, M. J., & Spirling, A. (2018). Text Preprocessing for Unsupervised Learning: Why It Matters, When It Misleads, And What to Do About It. Political Analysis, 26(02), 168-189. doi:10.1017/pan.2017.44
Week 7: 文字資料前處理:斷詞(tidytext, jiebaR)
Jurafsky, D. & Martin, J. H. (2018). Speech and Language Processing (chapter 2.4 Text Normalization)
Week 8: 資料視覺化(ggplot2)
Grolemund, G. & Wickham, H. (2017). R for Data Science (chapter 3).
Week 9: 爬蟲(web scraping)
Web Scraping in R: rvest Tutorial
管瓊瑛、謝寧、陳潔、張桂萍、高翊瑋、謝邦昌…張耀懋(2017)。長期照顧政策是照顧老人還是失能者?-以蔡英文臉書為例探勘民眾認知。台灣公共衛生雜誌,36(5),511-520。
Week 10: 期末報告主題說明
Grimmer, J., & Stewart, B. M. (2017). Text as Data: The Promise and Pitfalls of Automatic Content Analysis Methods for Political Texts. Political Analysis, 21(03), 267-297. doi:10.1093/pan/mps028
Week 11: 詞袋(bag of words)模型
Lowe, W. (2017). Understanding Wordscores. Political Analysis, 16(4), 356-371. doi:10.1093/pan/mpn004
Week 12: 情緒分析(sentiment analysis)
Young, L., & Soroka, S. (2012). Affective News: The Automated Coding of Sentiment in Political Texts. Political Communication, 29(2), 205-231. doi:10.1080/10584609.2012.671234
Week 13: 主題模型(topic models)
陳世榮(2015)。社會科學研究中的文字探勘應用:以文意為基礎的文件分類及其問題。人文及社會科學集刊,27(4),683-718
Week 14: 自然語言處理(Natural Language Processing, NLP)
鄭麗珍、賴美惠(2011)。結合知識地圖之公部門陳訴文件自動化分案系統。資訊管理學報,18(4),1-20。
Week 15: 詞嵌入(word embedding)模型
Silge, J. (2017). Word Vectors with tidy data principles.
Week 16: 資料溝通
Shiny App
Week 17: 期末報告準備週(暫定)
Week 18: 期末口頭報告

其他參考書籍
Grolemund, G. (2014). Hands-On Programming with R.
Imai, K. (2017). Quantitative Social Science: An Introduction. Princeton, New Jersey: Princeton University Press
Peng, R. D. (2018). R Programming for Data Science.
Peng, R. D., Kross, S., & Anderson, B. (2017). Mastering Software Development in R.
郭耀仁。輕鬆學習 R 語言。
劉正山(2018)。民意調查資料分析的R實戰手冊。臺北市:五南。
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
課堂作業 
60% 
作業共有6次,取5次最高分作業計算,每一作業各12分。程式碼可呈現題目所要求之結果即滿分。若可用較為簡要、清晰的程式碼完成,每次作業至多可再加2分。 
2. 
期末口頭報告 
10% 
各組人數1-3人。報告需有明確的研究問題、文字資料蒐集方式、分析方法、研究發現、研究結論與建議等部分。各組互評占5%,授課教師評分占5%。 
3. 
期末書面報告 
25% 
請以標楷體12號字撰寫,字數至少4,000字以上,並須包括上述口頭報告的各個部分。引註方式請採APA格式。期末報告請於最後一週上課後之一週內上傳至系統,遲交者不予計分。 
4. 
線上討論 
5% 
於課程之線上討論平臺具名提問或是回答他人提問,每次1分,5次以上則滿分。 
 
課程進度
週次
日期
單元主題
第1週
09/10  課程概覽 
第2週
09/17  R語言基礎:簡介 
第3週
09/24  R語言基礎:資料篩選與整理 
第4週
10/01  R語言基礎:資料探索與分析 
第5週
10/08  R語言基礎:程式設計基礎 
第6週
10/15  文字資料前處理(regex, tm, stringr) 
第7週
10/22  文字資料前處理:斷詞(tidytext, jiebaR) 
第8週
10/29  資料視覺化(ggplot2) 
第9週
11/05  爬蟲(web scraping) 
第10週
11/12  期末報告主題說明 
第11週
11/19  詞袋(bag of words)模型 
第12週
11/26  情緒分析(sentiment analysis) 
第13週
12/03  主題模型(topic models) 
第14週
12/10  自然語言處理(Natural Language Processing, NLP) 
第15週
12/17  詞嵌入(word embedding)模型 
第16週
12/24  資料溝通(shiny) 
第17週
12/31  期末報告準備週(暫定) 
第18週
01/07  期末口頭報告